import { ref, onMounted } from 'vue'
import { useRoute } from 'vue-router';
import { onBeforeRouteUpdate } from 'vue-router';
import { getCategeryAPI } from '@/apis/category'

// 封装分类数据业务相关代码 
export function useCategory() {

    // 获取分类数据
    const categoryData = ref({})
    const route = useRoute()
    // 默认id为route.params.id 
    const getCategory = async (id = route.params.id) => {
        const res = await getCategeryAPI(id)
        categoryData.value = res.result
        // console.log(categoryData);
    }
    onMounted(() => {
        getCategory()
    })


    // 目标：路由参数变化的时候 可以把分类数据接口重新发送,路由里面有个to参数,代表目标路由对象
    onBeforeRouteUpdate((to) => {
        // 存在问题: 使用最新的路由参数请求的分类数据
        getCategory(to.params.id)
    })
    // 数据 || 方法
    return {
        categoryData
    }
}